<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>3_类方法中this的指向</title>
</head>
<body>
  <script type="text/javascript">
    class Person {
      constructor(name, age) {
        this.name = name
        this.age = age
      }
      
      speak() {
        // speak方法放在Person类原型对象上，供实例使用
        // 通过Person实例调用本方法，方法中的this指向Person实例
        // 类中普通方法默认开启严格模式
        console.log(this);
      }
    }

    const p1 = new Person('zhangsan', 25)
    // 通过实例调用类方法
    p1.speak()
    // 直接调用方法，因为默认开启了严格模式，this为undefied
    const f1 = p1.speak
    f1()

    function demo1() {
      console.log(this);
    }

    function demo2() {
      'use strict'
      console.log(this);
    }

    demo1()
    demo2()
  </script>
</body>
</html>